#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>

namespace Ui {
class MainWidget;
}

class MainWidget : public QWidget
{
    Q_OBJECT

public:
    explicit MainWidget(QWidget *parent = nullptr);
    ~MainWidget();

private slots:

    ///
    /// \brief writeConfig1PageToIniFile
    ///将Config1页面的值写入ini文件
    void writeConfig1PageToIniFile();

    ///
    /// \brief setConfig1PageToDef
    ///设置Config1页面默认值
    void setConfig1PageToDef();

    ///
    /// \brief readIniToConfig1Page
    ///读取ini文件的值到 Config1 page
    void readIniToConfig1Page();

    ///
    /// \brief writeConfig2PageToIniFile
    ///将Config2页面的值写入ini文件
    void writeConfig2PageToIniFile();

    ///
    /// \brief setConfig2PageToDef
    ///设置Config2页面默认值
    void setConfig2PageToDef();

    ///
    /// \brief readIniToConfig2Page
    ///读取ini文件的值到 Config2 page
    void readIniToConfig2Page();

    ///
    /// \brief writeConfig3PageToIniFile
    ///将Config3页面的值写入ini文件
    void writeConfig3PageToIniFile();

    ///
    /// \brief setConfig3PageToDef
    ///设置Config3页面默认值
    void setConfig3PageToDef();

    ///
    /// \brief readIniToConfig3Page
    ///读取ini文件的值到 Config3 page
    void readIniToConfig3Page();

    ///
    /// \brief writeConfig4PageToIniFile
    ///将Config4页面的值写入ini文件
    void writeConfig4PageToIniFile();

    ///
    /// \brief setConfig4PageToDef
    ///设置Config4页面默认值
    void setConfig4PageToDef();

    ///
    /// \brief readIniToConfig4Page
    ///读取ini文件的值到 Config4 page
    void readIniToConfig4Page();

    ///
    /// \brief writeConfig5PageToIniFile
    ///将Config5页面的值写入ini文件
    void writeConfig5PageToIniFile();

    ///
    /// \brief setConfig5PageToDef
    ///设置Config5页面默认值
    void setConfig5PageToDef();

    ///
    /// \brief readIniToConfig5Page
    ///读取ini文件的值到 Config5 page
    void readIniToConfig5Page();

    ///
    /// \brief writeConfig6PageToIniFile
    ///将Config6页面的值写入ini文件
    void writeConfig6PageToIniFile();

    ///
    /// \brief setConfig6PageToDef
    ///设置Config6页面默认值
    void setConfig6PageToDef();

    ///
    /// \brief readIniToConfig6Page
    ///读取ini文件的值到 Config6 page
    void readIniToConfig6Page();

    ///
    /// \brief writeConfig7PageToIniFile
    ///将Config7页面的值写入ini文件
    void writeConfig7PageToIniFile();

    ///
    /// \brief setConfig7PageToDef
    ///设置Config7页面默认值
    void setConfig7PageToDef();

    ///
    /// \brief readIniToConfig7Page
    ///读取ini文件的值到 Config7 page
    void readIniToConfig7Page();

    void on_tabWidget_currentChanged(int index);

private:
    Ui::MainWidget *ui;

    ///
    /// \brief m_isSettingDef
    ///是否在进行默认值设置中 标记
    volatile bool m_isSettingDef;

    ///
    /// \brief initCfgRegMisc
    ///初始化 界面寄存器相关控件
    void initCfgRegMisc();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config1的页面
    void initConfig1Page();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config2的页面
    void initConfig2Page();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config3的页面
    void initConfig3Page();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config4的页面
    void initConfig4Page();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config5的页面
    void initConfig5Page();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config6的页面
    void initConfig6Page();

    ///
    /// \brief initConfigRegPage
    ///初始化 Config7的页面
    void initConfig7Page();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存1 的显示结果
    void updateConfig1RegRes();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存2 的显示结果
    void updateConfig2RegRes();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存3 的显示结果
    void updateConfig3RegRes();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存4 的显示结果
    void updateConfig4RegRes();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存5 的显示结果
    void updateConfig5RegRes();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存6 的显示结果
    void updateConfig6RegRes();

    ///
    /// \brief updateConfig1RegRes
    ///更新配置寄存7 的显示结果
    void updateConfig7RegRes();

};

#endif // MAINWIDGET_H
